﻿using CommunityToolkit.Mvvm.ComponentModel;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Deepseek_Robot.Modules.Models.ABBDataModel;

namespace Deepseek_Robot.Modules.ViewModels
{
    // 继承自 ObservableObject 以使用 SetProperty 方法
    public partial class ABBDataViewModel : ObservableObject
    {
        [ObservableProperty]
        private ObservableCollection<RobTargetDataModel> robTargetData;

        [ObservableProperty]
        private ObservableCollection<ThreeDataModel> threeData;

        [ObservableProperty]
        private ObservableCollection<DataTypeArrayModel> dataTypeArray;

        public ABBDataViewModel()
        {
            // 初始化数据
            LoadData();
        }

        private void LoadData()
        {
            // 调用原有的三个函数，这里需要根据实际情况实现具体逻辑
            // 示例代码中只是简单初始化集合
            RobTargetData = new ObservableCollection<RobTargetDataModel>();
            ThreeData = new ObservableCollection<ThreeDataModel>();
            DataTypeArray = new ObservableCollection<DataTypeArrayModel>();

            // 模拟调用原有的三个函数获取数据
            var robTargetResult = GetRobTargetData();
            var threeDataResult = GetThreeData();
            var dataTypeArrayResult = GetDataTypeArray();

            // 将获取到的数据添加到集合中
            foreach (var item in robTargetResult)
            {
                RobTargetData.Add(item);
            }

            foreach (var item in threeDataResult)
            {
                ThreeData.Add(item);
            }

            foreach (var item in dataTypeArrayResult)
            {
                DataTypeArray.Add(item);
            }
        }


        private ObservableCollection<RobTargetDataModel> GetRobTargetData()
        {
            // 这里需要根据原有的 RobTargetData 函数实现具体逻辑
            // 示例中返回一个空的集合
            return new ObservableCollection<RobTargetDataModel>();
        }

        private ObservableCollection<ThreeDataModel> GetThreeData()
        {
            // 这里需要根据原有的 ThreeData 函数实现具体逻辑
            // 示例中返回一个空的集合
            return new ObservableCollection<ThreeDataModel>();
        }

        private ObservableCollection<DataTypeArrayModel> GetDataTypeArray()
        {
            // 这里需要根据原有的 DataTypearray 函数实现具体逻辑
            // 示例中返回一个空的集合
            return new ObservableCollection<DataTypeArrayModel>();
        }
    }
}
